Enterprises and organizations of any size often rely on software applications to conduct business. To meet the specific needs of such enterprises and organizations, the built-in functionality and predefined data of software components, and/or the data itself of a software application, may be changed. The process of changing software components and/or data is referred to as customization.
Customization of software components and/or data may usually not, however, be performed while the software system is running. Thus, enterprises may use at least two systems during customization. For instance, the customization may be initially carried out on the first system. This system may be denoted as the customization system. The second system, on the other hand, may be denoted as the productive system. In such an arrangement, changes are transported from the first system to the second system only after those changes have been successfully tested on the first system.
Other arrangements may use at least three systems—a customization system, a quality assurance system, and a productive system. Again, the customization system may be used to customize the applications. The quality assurance system, however, may be used to test the changes to determine that they work correctly. The changes are thus transported from the customization system to the quality assurance system and, then, from the quality assurance system to the productive system. The transport of changes from a first system to another system is referred to herein as software distribution.
Typically, enterprises and organizations use many different software applications. If these software applications are customized centrally on a customization system—for example by a team of administrators—a number of different applications may be distributed from the customization system to at least a further system. Normally, different software applications provide their own distribution tools. Therefore, a number of different distribution tools and distribution methods may be necessary to distribute different software applications. However, by using different distribution tools, there exists a higher risk of making mistakes during the software distribution process.
Accordingly, there exists a need to simplify the distribution of software and data involving different software applications.